import time,os
from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Users
# Create your views here.
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger #导入分页插件

# 网站首页
def index(request):
    return render(request,"myapp/menu.html")
    # return HttpResponse("首页 <br/> <a href='/users'>用户信息关联</a>")

# 加载文件上传表单
def upload(request):
    return render(request,"myapp/upload.html")
# 执行文件上传处理
def doupload(request):
    # 正常是用POST接收数据，文件上传是用FILES接收
    myfile=request.FILES.get("pic",None)
    print(myfile) #测试是否能上传
    print(request.POST.get("title"))
    if not myfile:
        return HttpResponse("没有上传的文件信息")
    # 生成上传后的文件名,获取最后的文件的后缀名 + 随机的时间戳 + 最后的文件的后缀名字
    filename=str(time.time())+"."+myfile.name.split('.').pop()
    destination=open("./static/pics/"+filename,"wb+")
    for chunk in myfile.chunks(): # 分块读取上传文件内容并写入目标文件
        destination.write(chunk)
    destination.close()
    return HttpResponse("上传的文件："+filename)

#浏览用户信息
def indexUsers(request):
    # try:
        ulist=Users.objects.all()  #获取所有的用户信息
        context={'userslist':ulist} # 封装数据
        return render(request,'myapp/index.html',context) #用render加载模板
    # except:
    #     return HttpResponse('没有找到用户信息')

#分页浏览用户信息
def pageUsers(request,pIndex=1):
    # try:
        #判断搜索条件并封装
        kw=request.GET.get("keyword",None) # 获取网页上传字段：keyword的数据
        mywhere = "" # 定义一个用于存储搜索条件的变量
        if kw is not None:
            list=Users.objects.filter(name__contains=kw)  #name__contains表示模糊查询,对name字段做包含式查询
            mywhere = "?keyword="+kw # 追加搜索条件
        else:
            list=Users.objects.filter()  #获取所有的用户信息
        p = Paginator(list,5) # 以5条数据分一页实例化对象
        # 判断页码值是否有效
        if pIndex<1:
            pIndex=1
        elif pIndex>p.num_pages:   # p.num_pages 代表最大值
            pIndex=p.num_pages
        ulist=p.page(pIndex) # 拿到第pIndex页数据
        context={'userslist':ulist,"pIndex":pIndex,"pagelist":p.page_range,"mywhere":mywhere} # 那到分页后的数据，封装数据，
        return render(request,'myapp/index2.html',context) #用render加载模板
    # except:
    #     return HttpResponse('没有找到用户信息')

#加载添加用户信息表单
def addUsers(request):
    return render(request, 'myapp/add.html')  # 用render加载模板
#执行用户信息添加
def insertUsers(request):
    ob=Users()
    #从表单中获取要添加的信息并封装到ob对象中
    ob.name=request.POST['name']  #获取post请求里面的name
    ob.age=request.POST['age']
    ob.phone=request.POST['phone']
    ob.save() #执行保存
    context={"info":"添加成功！"}
    return render(request,'myapp/info.html',context)
#执行用户信息删除
def delUsers(request,uid=0):
    ob = Users.objects.get(id=uid) # 获取要删除的数据
    ob.delete() #删除
    context = {"info": "删除成功！"}
    return render(request, 'myapp/info.html', context)
#加载用户信息修改表单
def editUsers(request,uid=0):
    ob = Users.objects.get(id=uid)  # 获取要修改的数据
    context = {"user":ob}
    return render(request, 'myapp/edit.html', context)
#执行用户信息修改
def updateUsers(request):
    uid=request.POST['id']
    ob=Users.objects.get(id=uid)
    #从表单中获取要添加的信息并封装到ob对象中
    ob.name=request.POST['name']  #获取post请求里面的name
    ob.age=request.POST['age']
    ob.phone=request.POST['phone']
    ob.save() #执行保存
    context={"info":"修改成功！"}
    return render(request,'myapp/info.html',context)
# 静态文件
def Pics(request):
    return render(request, 'myapp/pics.html') 